"""
sort(*, key=None, reverse=False)，两个可选参数，key指定带有单个参数的函数，
用于从列表的每个元素中提取用于比较的键。
reverse为一个布尔值。如果设为True，则每个列表元素将按反向顺序比较进行排序。
使用列表排序方法的时候，它是直接作用于列表本身，不会返回一个新的列表。
"""
# 按数字大小排序
list1 = [3,2,5,1]
list1.sort()
print(list1) # [1, 2, 3, 5]

# 按字符串长度排序
list1 = ['Vue', 'Django', 'DjangoRestFramework', 'Flask', 'Tornado']
list1.sort(key=len)
print(list1) # ['Vue', 'Flask', 'Django', 'Tornado', 'DjangoRestFramework']


"""
内置函数sorted()可以从一个迭代对象构建返回一个新的排序列表。
sorted(iterable, *, key=None, reverse=False)，同样，也有两个可选参数。
但是，这里的key函数是从任意可迭代对象iterable的每个元素中提取用于比较的键。reverse的用法一样。
"""
dict1 = {6:'zzh', 3:'cxy', 11:'zyw', 9:'lxp'}
print(sorted(dict1.items(), key=None, reverse=False)) # [(3, 'cxy'), (6, 'zzh'), (9, 'lxp'), (11, 'zyw')]

dict1 = {6:'zzhxxx', 3:'cxyxx', 11:'zywx', 9:'lxp'}
print(sorted(dict1.items(), key=lambda x: len(x[1]), reverse=False)) # [(9, 'lxp'), (11, 'zywx'), (3, 'cxyxx'), (6, 'zzhxxx')]

"""
例子：s = "ajldjlajfdljfddd"，去重并从小到大排序输出"adfjl"
"""
s = "abfffcbabdededefbfeab"
s = "".join(sorted(set(s), key=None)) # 转换成集合去重，sorted排序，"".join转换成字符串
print(s)
